The invention relates to image generation.
As shown in FIG. 1, for purposes of simulating the motion of objects 8 in a three-dimensional (3-D) image 6, a typical graphics system generates and displays successive frames (i.e., snapshots) of the image 6. The graphics system may update the position, orientation, and viewpoint of all the objects 8 for each frame.
However, to reduce the required memory bandwidth and memory capacity, the graphics system may take advantage of the fact that some objects 8a (e.g., background objects farther from the viewer) do not require updates as frequently as other objects 8b (e.g., foreground objects closer to the viewer). As shown in FIG. 2, a graphics system 10 recognizes this advantage by dividing the image 6 into image layers (typically parallel with the X-Y plane) with each image layer containing one or more objects 8. The graphics system 10 selectively updates the image layers (i.e., the objects in the image layers) according to a rate at which the image layer changes which allows some objects (e.g., foreground objects) to be updated more frequently than other objects (e.g., background objects).
The physical properties (e.g., size and appearance) of each object 8 are typically defined by a data structure 12 (e.g., a "sprite") stored in a memory 15. To perform affine transformations (e.g., rotation and translation) of the objects 8 of a selected image layer, the graphics system 10 has a polygon object processor 14. An image layer compositor 16 combines the image layers (whether updated or not) to form image data which a video output circuit 22 uses to form horizontal scan lines (and thus, the image 6) on a display 26 (FIG. 3).
To form a frame of an image, the video output circuit 22 generates the horizontal scan lines in a predetermined sequence. Each scan line is generated in a left to right fashion across the display 26, and to generate one frame (assuming no interlacing) the sequence begins at the top (i.e., for the first scan line) and ends at the bottom (i.e., for the last scan line) of the display 26.
The compositor 16 forms the image data in a piecewise fashion by subdividing the image 6 along an X-Y plane into horizontal bands 24 (i.e., blocks of scan lines) extending across the screen 26. The compositor 16 forms the image data for each band 24 inside a compositing buffer 18. To minimize delays between the forming of the image data of the band 24 and the retrieving of image data by the video output circuit 22, the compositing buffer 18 has two band buffers 20 used alternatively by the video output circuit 22 and the image layer compositor 16. The image layer compositor 16 forms image data for one of the bands 24 in one band buffer 20 while the video output circuit 22 simultaneously retrieves the image data for another one of the bands 24 from the other buffer 20.